<?php

define('VI_TIMER_BEGIN', microtime(true));

define('IN_VIFRAME'    , true);

define('VI_VERSION'    , 'ViFramework 0.2.1 Alpha');

define('VI_RELEASE'    , 2011040201);

define('VI_ROOT'       , dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR);

define('VI_DEBUG'      , true);

require_once('Vi.php');

require_once('Vi.Constants.php');

date_default_timezone_set(VI_TIMEZONE);

set_exception_handler(array('Vi', 'handleException'));

set_error_handler(array('Vi', 'handleError'), VI_SYSTEM_ERRORHANDLE);

Vi::setFilePrefix(array(
	'All'       => true,

	'Class'     => 'Class.',
	'Config'    => 'Config.',
	'Filter'    => 'Filter.',
	'Function'  => 'Function.',
	'Hook'      => 'Hook.',
	'Interface' => 'Interface.',
	'Lang'      => 'Lang',
	'Lib'       => 'Lib.',
	'Script'    => 'Script.',
	'Type'      => 'Type.'
));

Vi::setFileSuffix('.php');

Vi::setAlias(array(
	'System' => VI_ROOT.'System\\',
	'Plugin' => VI_ROOT.'Plugin\\',
	'Config' => VI_ROOT.'Config\\',
	'Cms'    => VI_ROOT.'Cms\\'
));

Vi::import(array(
	'Type      : System.Type.Lib,
	             System.Type.Object,
	             System.Type.Exception,
	             System.Type.Class,
	             System.Type.Interface',

	'Exception : System.System.System',

	'Object    : System.Message.SystemMessage,
	             System.Message.TinyMessage',

	'Lib       : System.Debug.Debug',

	'Lib       : System.Log.Log,
	
	             System.System.Factory,
	             System.System.Php,
	             
	             System.File.File,
	             
	             System.Config.Config,
	             
	             System.Lang.Lang,
	             
	             System.Plugin.Hook,
	             System.Plugin.Filter,
	             
	             System.Db.Db'
));

Vi::import(array(
	'Class : Cms.Core.ViCms,
	         Cms.Core.Option'
));

Config::load('Config.System');
Lang::load('Lang.System');